#ifndef __USER_H__
#define __USER_H__
#include "BSP_USART.h"
#include "string.h"
#include "VOFA.H"
#include <math.h>
#include <stdio.h>
#include "FreeRTOS.h"
#include "task.h"
#include "queue.h"
#include "semphr.h"
#include "timers.h"
#include "delay.h"
#include "sys.h"
#include "gui.h"
#include "lcd.h"
#include "BSP_PWM.h"
#include "MOTOR.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "pid.h"
#include "Sevro.h"
#include "event_groups.h"
#include "Laser_Ranging.h"
#include "mecanum.h"
#include "Car_Task_Judge.h"

#define CAR_MOVE_F          0x12                //小车前进
#define CAR_MOVE_B          0x23                //小车后退
#define CAR_MOVE_R          0x34                //小车向右
#define CAR_MOVE_L          0x45                //小车向左
#define CAR_MOVE_P          0X56                //小车停止
#define CAR_REVOLVE_CW      0x67                //小车顺时针旋转
#define CAR_REVOLVE_CCW     0x78                //小车逆时针旋转 

#define CAR_STATUS_1    0X01
#define CAR_STATUS_2    0x02
#define CAR_STATUS_3    0x03
#define CAR_STATUS_4    0x04
#define CAR_STATUS_5    0X05
#define CAR_STATUS_6    0X06
#define CAR_STATUS_7    0X07
#define CAR_STATUS_8    0X08
#define CAR_STATUS_9    0X09


typedef unsigned int Tick_HZ;              //任务刷新频率


void Task_Start(void);
void BSP_Init(void);
void USART_Read_Task(void*pv);
void AppTaskCreate(void*pv);
void LCD_Refresh_Task(void*pv);
void MPU6050_Receive_Task(void*pv);
void Car_Move_Task(void*pv);
void Sevro_Control_Task(void*pv);
void VOFA_Send_Task(void*pv);
void Laser_Ranging_Rec_Data_Task(void*pv);
void Move_Time_Task(void*pv);
void MPU6050_PID_calculation_Task(void*pv);
#endif
